﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Diploma.Models.Entities;

namespace Diploma.Models.IRepositories
{
    public interface ICompaniesRepository
    {
        IEnumerable<Company> GetAll();
        IEnumerable<Company> GetAllForLevel(int levelId);

        Company Get(Guid companyId);

        void Add(string name);
        void UpdateCompanyName(Guid companyId, string name);
        void Delete(Guid companyId);

        void AttachCompanyToLevel(Guid companyId, int levelId, int? maxValue);
        void DetachCompanyFromLevel(Guid companyId, int levelId);
        void DetachCompanyFromLevels(Guid companyId);
        IEnumerable<LecturerInCompanyEntity> LecturerInCompanies(Guid lecturerId);
        void AttachCompanyToLecturer(Guid lecturerId, Guid companyId, int levelId);
        void DetachCompanyToLecturer(Guid lecturerId, Guid companyId, int levelId);
    }
}
